package com.ray.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.ray.bean.AttendDailySalaryDetailBean;
import com.ray.pojo.attend.AttendanceInfoPojo;
import com.ray.pojo.attend.DailySalaryDetailByConditionPojo;
import com.ray.pojo.attend.DailySalaryDetailPojo;
import com.ray.pojo.attend.DeptAndWorkshopPojo;
import com.ray.pojo.attend.PendingApprovalInfoPojo;
import com.ray.pojo.attend.WorkshopAttendPersonNumPojo;
import com.ray.pojo.attend.WorkshopFillcardNumPojo;
import com.ray.pojo.attend.WorkshopInfoPojo;

public interface AttendanceMapper {
	
	/**
	 * 获取车间考勤数据
	 * @param map
	 * @return {@code List<AttendanceSummaryPojo>}
	 * @author 王荣
	 */
	List<WorkshopInfoPojo> getWorkshopAttendanceBoard(Map<String, Object> requestMap);
	
	/**
	 * 获取未处理审核单，用于发送未处理审核信息
	 * @return {@code List<PendingApprovalInfoPojo>}
	 * @author 王荣
	 */
	List<PendingApprovalInfoPojo> getPendingApprovalMessage();
	
	/**
	 * 获取一个时间段内的每天的考勤统计信息
	 * @param requestMap
	 * @return
	 * @author 王荣
	 */
	List<AttendanceInfoPojo> getAttendanceInfo(Map<String, Object> requestMap);
	
	/**
	 * 获取排班与工资设置明细
	 * @param requestMap
	 * @author 王荣
	 */
	List<com.ray.pojo.attend.AttendPlanAndFinanceDetailPojo> getAttendPlanAndFinanceDetail(Map<String, Object> requestMap);
	
	/**
	 * 保存考勤每日工资详情
	 * @param beans
	 * @author 王荣
	 */
	void saveAttendDailySalaryDetail(@Param("beans")List<AttendDailySalaryDetailBean> beans);
	
	/**
	 * 修改考勤每日工资详情
	 * @param beans
	 * @author 王荣
	 */
	void updateAttendDailySalaryDetail(@Param("beans")List<AttendDailySalaryDetailBean> beans);
	
	/**
	 * 修改工资定时任务
	 * @author 王荣
	 */
	void updateSalaryTimerTask();
	
	/**
	 * 每月初 定时保存上月的员工工资明细设定记录
	 * @author 王荣
	 */
	void saveFinanceDetailByMonth();
	
	/**
	 * 获取某人某月的每日工资明细
	 * @param requestMap
	 * @author 王荣
	 */
	List<DailySalaryDetailPojo> getDailySalaryDetail(Map<String, Object> requestMap);
	
	/**
	 * 多人的每日工资明细
	 * @param requestMap
	 * @author 王荣
	 */
	List<DailySalaryDetailByConditionPojo> getDailySalaryDetailByCondition(Map<String, Object> requestMap);
	
	List<DeptAndWorkshopPojo> getDeptAndWorkshop(Map<String, Object> requestMap);
	
	/**
	 * 获取车间今日出勤人数信息
	 * @param requestMap
	 * @author 王荣
	 */
	List<WorkshopAttendPersonNumPojo> getWorkshopAttendPersonNum(Map<String, Object> requestMap);
	
	/**
	 * 
	 * @param requestMap
	 * @author 王荣
	 */
	List<WorkshopFillcardNumPojo> getWorkshopFillcardNum(Map<String, Object> requestMap);
	
}
